package com.tedu.day02.oop;

/**
 * 继承关系---多态类
 * 作用：父子级关系，实现方法互通（重写）
 */
class A1 {
    public void tell1() {
        System.out.println("A--你好，我是tell2");
    }

    public void tell2() {
        System.out.println("B--你好，我是tell2");
    }

    class B1 extends A1{
        public void  tell2(){
            System.out.println("B--你好，我是tell2");
        }
        public void tell3(){
            System.out.println("B，你好，我是tell3");
        }
    }


    public class 多态 {
        public void main(String[] args) {
            //创建B1对象--创建一个对象  子类【不存在多态，没有造型】
//             B1 b=new B1();
   //         A1 a=b;    //子类交给父亲保存  向上造型
     //       //实现方法互通  调用父类与子类的方法
       //     a.tell1();//父类中的方法
         //   a.tell2();//重写：方法互通
            //向下造型：实现方法互通，调用父类和子类的方法
            //①向上造型1次：父类的引用指向子类的对象
            A1 a=new B1();
            //②子类接收：向上造型1次引用，并且强转
            B1 b=(B1)a;
            b.tell1();//父亲的方法
            b.tell1();//重写：父亲的方法---输出子类
            b.tell3();//子类的方法

        }
    }
}